iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 6
0
Modern Web

使用 Django 開發網頁系統系列 第 6

[Day 06] Database migrate

  • 分享至 

  • xImage
  •  

今天來聊聊 Database 資料庫

資料庫是用來存資料的

在django settings.py DATABASES 可以看到 預設是 sqlite

sqlite 不是一個關聯式資料庫,不適合用來日後開發
抱歉 這地方有誤

多半都會換常見的關聯式 mysql postgres ...等等資料庫

django 支援的資料庫
https://docs.djangoproject.com/en/2.0/ref/settings/#engine

這邊就以postgres舉例
postgres 下載連結,依作業系統選擇
https://www.postgresql.org/download/

pgadmin postgres 可視化工具
https://www.pgadmin.org/download/

可以用 pgadmin 跟 輸入指令去建立 user & DB,這邊先以pgadmin 做

使用pgadmin

建立 user

在 Login/Group Roles 右鍵 Create > Login/Group Role
示意圖
https://ithelp.ithome.com.tw/upload/images/20171224/20107183gJYz9TbU6W.png

name: shop
password: shoppw
密碼是在 Definition 頁籤
Privileges 頁籤 要把 Can login 改成 Yes
示意圖
https://ithelp.ithome.com.tw/upload/images/20171224/20107183PbvDgkGvGe.pnghttps://ithelp.ithome.com.tw/upload/images/20171224/20107183E8K01Z0GU8.png
https://ithelp.ithome.com.tw/upload/images/20171224/20107183Lc5bZrLJrF.png
按 Save

建立 db

在 Databases 右鍵 Create > Database
https://ithelp.ithome.com.tw/upload/images/20171224/20107183r62osQ7FCD.png
Database: shopDB
Owner: shop (選剛剛建的)
https://ithelp.ithome.com.tw/upload/images/20171224/201071836DLQk51nd4.png
按 Save

這樣就完成了

環境部分
要在環境裝 psycopg2,先進到 virtualenv

pip3 install psycopg2

settings.py 改連線

...
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'shopDB',
        'USER': 'shop',
        'PASSWORD': 'shoppw',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

...

如果 run server 沒有錯,就沒有問題了
在專案目錄執行 manage.py migrate,會把djagno 需要的table 寫進資料庫
先進到 virtualenv

python manage.py migrate

看到的結果
https://ithelp.ithome.com.tw/upload/images/20171224/20107183JrdGa1WYEZ.png
也可以用pgadmin看

今天就到這裡,如果要 linux 指令操作 postgres 的話或是使用 mysql我也可以寫一篇


上一篇
[Day 05] Templates 範本
下一篇
[Day 07] models.py
系列文
使用 Django 開發網頁系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
paicheng0111
iT邦大師 5 級 ‧ 2018-09-29 07:24:43

SQLite應該是一個關聯式資料庫。

我要留言

立即登入留言